package offer_test_20;

public class two_Singleton {
	// //单线程版本，不太好
	// private static two_Singleton singleton;
	//
	// private two_Singleton() {
	// System.out.println("instance");
	// }
	//
	// public static two_Singleton getInstance() {
	// if (singleton == null) {
	// singleton = new two_Singleton();
	// }
	// return singleton;
	// }
	// //直接初始化，避免多线程出错
	// private static two_Singleton singleton=new two_Singleton();
	// private two_Singleton(){}
	// public static two_Singleton getInstance() {
	// return singleton;
	// }
	// 加锁
	private static two_Singleton singleton;

	private two_Singleton() {
	}

	public static two_Singleton getInstance() {
		if (singleton == null) {
			synchronized (two_Singleton.class) {
				if (singleton == null) {
					singleton = new two_Singleton();
				}
			}
		}
		return singleton;
	}
}
